package com.zwps.biz.api.model.dto.permission.page;

import com.zwps.common.api.model.dto.PageInfoDTO;
import com.zwps.common.api.validator.IntOption;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

/**
 * 查询页面权限条件
 * 
 * @ClassName: SelectPagePermissionDTO
 * @Description:
 * @author lyh
 * @date 2023年5月25日 下午1:55:14
 *
 */
@Schema(description = "查询页面权限条件")
@Getter
@Setter
@ToString
public class SelectPagePermissionDTO extends PageInfoDTO {

    /**
     * 父id
     */
    @Schema(description = "上级ID")
    private String parentId;

    /**
     * 权限名称（菜单名称或按钮名称）
     */
    @Schema(description = "名称")
    private String name;

    /**
     * 路径
     */
    @Schema(description = "路径")
    private String url;

    /**
     * 组件url
     */
    @Schema(description = "组件url")
    private String componentUrl;

    /**
     * 是否路由菜单，选项【0：不是 1：是】
     */
    @Schema(description = "是否路由菜单，选项【0：不是 1：是】")
    private Integer route;

    /**
     * 组件名称
     */
    @Schema(description = "组件名称")
    private String componentName;

    /**
     * 菜单跳转地址
     */
    @Schema(description = "跳转地址")
    private String redirect;

    /**
     * 菜单类型，选项【0：菜单|1：按钮】
     */
    @Schema(description = "菜单类型，选项【0：菜单|1：按钮】")
    private Integer permissionType;

    /**
     * 菜单权限编码
     */
    @Schema(description = "权限编码")
    private String permissionCode;

    /**
     * 显示策略，选项【0：显示|1：禁用】
     * 
     */
    @Schema(description = "显示策略，选项【0：显示|1：禁用】")
    @IntOption({ 0, 1 })
    private String displayStrategy;

    /**
     * 排序值
     */
    @Schema(description = "排序值")
    private Integer sort;

    /**
     * 菜单图标url
     */
    @Schema(description = "图标url")
    private String icon;

    /**
     * 是否缓存该页面，选项【 0：否|1：是】
     */
    @Schema(description = "是否缓存该页面，选项【 0：否|1：是】")
    private Integer keepAlive;

    /**
     * 是否隐藏路由，选项【 0：否|1：是】
     */
    @Schema(description = "是否隐藏路由，选项【 0：否|1：是】")
    private Integer hiddenRoute;

    /**
     * 是否隐藏tab，选项【 0：否|1：是】
     */
    @Schema(description = "是否隐藏tab，选项【 0：否|1：是】")
    private Integer hiddenTab;

    /**
     * 描述
     */
    @Schema(description = "描述")
    private String description;

}
